The present invention relates to computer systems and networks. More particularly, the present invention relates to networks including multiple client computers connected to peripheral devices and to apparatus and methods for mapping serial ports for such peripheral devices connected to client computers.
It has become popular in recent years, for businesses to configure a client/server computing model that places complete control of what a client computer is allowed to do under the central control of a server being managed by an IT management department. Businesses that need this type of service include financial services, healthcare and many others, where computer terminals are used by a variety of people during the day, and where it is critical that confidential information not be available or stored on a remote client computer but kept locked down on, and under the sole control of a central server system. Vendors providing this type of client/server software include Microsoft, Citrix, VMware and others. The essence of these systems is that all programs are only resident on, and run on, the server but do so by interacting with a client over a network connection. In many cases, these clients are thin clients that contain no non-volatile data storage or operating system.
In the design and management of remote client computing, allocation of bandwidth is a key consideration, because the software is not being run all within a single PC with a high-speed hardware data bus. Rather, the software is run on the server using data input by the client and received over the network connection by the server and presenting data over the network connection to the client. In some cases, such as a large hospital, there may be thousands of these clients, located in various locations on the hospital campus or at one or more remote physical sites. It is important to prioritize and allocate base connection bandwidth carefully, first being allocation to display of information on the client, and then to client user interaction such as keyboard, mouse, and other device input, and the printout of paper documents that can be provided to the customer/client.
Data that may be required from remotely-located peripheral devices such as scanned images, captured signatures, video and/or sound can take up a lot of bandwidth yet are outside of the direct control of the server, as to the timing and amount of data flowing between client and server. For this reason, peripheral-device ports are allocated sparingly and via special procedures in such systems. In addition, because these client-connected peripheral device ports, such as com ports for example, may be only intermittently connected to the server, it can become a difficult task to assure that the mapping of a peripheral device attached to a client is allocated correctly to a port on the server, and is clearly associated with and made available correctly to an application program in use by a particular client, and not to any other client.
Current solutions involve static mapping of ports or peripherals on a client device to corresponding port or port assignments on the server computer, or multiple server computers operating together. However, in a dynamic environment with hundreds or thousands of such clients and peripheral devices, and individual users constantly logging in and out with different credentials and permissions, static mapping can fail to accurately connect the peripheral device or port to the corresponding application program on the server dedicated to the client and user of interest.